import { DialogTable } from 'custom/index'
import { getCheckPagePage } from '../api'
import CheckPageDetailColumn from '../component/CheckPageDetailColumn.vue'

const getParams = ctx => {
  const { props } = ctx
  const row = ctx.ctx.attrs.row || {}
  return {
    url: 'DataQueryAnalysis5Detail',
    condition: { userId: row.userId, dateStart: row.dateStart, dateEnd: row.dateEnd, keyword: '' },
    sort: props.sort
  }
}

const checkPageDetailDialog = new DialogTable('DialogTable')

checkPageDetailDialog
  .title('详情')
  .width('50%')
  .api((data, row) => {
    return getCheckPagePage({
      ...data,
      condition: { userId: row.userId, dateStart: row.dateStart, dateEnd: row.dateEnd, keyword: '' }
    })
  })
  .useSearch().upto('DialogTable')
  .useAuthButton()
    .useItem('').content('导出').exportExcel(getParams).end()
  .upto('DialogTable')
  .useTable()
    .addIndexColumn()
    .useColumn('date').label('日期').minWidth(130).end()
    .useColumn('customTypeName').label('客服类型').showOverflowTooltip().minWidth(160).end()
    .useColumn('name').label('客服姓名').minWidth(200).end()
    .useColumn('flowerName').label('客服花名').minWidth(160).end()
    .useColumn('no').label('客服工号').minWidth(200).end()
    .useColumn('sumReceptionVolume').label('总接待量').toFixed(2).minWidth(200).end()
    .useColumn('sumIgnoreReceptionVolume').label('标后总量').toFixed(2).minWidth(140).end()
    .useColumn('averageDayReceptionVolume').label('日均接待量').toFixed(2).minWidth(140).end()
    .useColumn('averageIgnoreDayReceptionVolume').label('标后日均').toFixed(2).minWidth(140).end()
    .useColumn('averageResponseTime').label('平均响应').toFixed(2).minWidth(140).end()
    .useColumn('averageIgnoreResponseTime').label('标后均响').toFixed(2).minWidth(140).end()
    .useColumn('averageResponseRate').label('平均回复率').toFixedPercent(2).minWidth(140).end()
    .useColumn('averageIgnoreResponseRate').label('标后回复').toFixed(2).minWidth(140).end()
    .useColumn('averageConversionRate').label('平均问答比').toFixedPercent(2).minWidth(140).end()
    .useColumn('averageIgnoreQARatio').label('标后问答').toFixed(2).minWidth(140).end()
    .useColumn('sumCount').label('数据总行数').toFixed(2).minWidth(140).end()
    .useColumn('ignoreCount').label('打标行数').toFixed(2).minWidth(140).end()
    .useColumn('ignoreProportion').label('打标占比').minWidth(140).end()
    .useColumn('restDays').label('休息天数').minWidth(140).end()
    .useCustomColumn(CheckPageDetailColumn, 'action').label('详情').width(80).fixed('right').end()
    .upto('DialogTable')
  .usePagination()
    .upto('DialogTable')

const detailDetailDialog = new DialogTable('DialogTable')

detailDetailDialog
  .title('详情')
  .width('60%')
  .api((data, row) => {
    return getCheckPagePage({
      ...data,
      condition: { userId: row.userId, dateStart: row.dateStart, dateEnd: row.dateEnd, keyword: '', date: row.date }
    })
  })
  .useTable()
    .addIndexColumn()
    .useColumn('accountName').label('子账号名称').minWidth(150).end()
    .useColumn('customTypeName').label('客服类型').showOverflowTooltip().minWidth(160).end()
    .useColumn('name').label('客服姓名').minWidth(200).end()
    .useColumn('flowerName').label('客服花名').minWidth(160).end()
    .useColumn('no').label('客服工号').minWidth(200).end()
    .useColumn('sumReceptionVolume').label('总接待量').toFixed(2).minWidth(200).end()
    .useColumn('sumIgnoreReceptionVolume').label('标后总量').toFixed(2).minWidth(140).end()
    .useColumn('averageDayReceptionVolume').label('日均接待量').toFixed(2).minWidth(140).end()
    .useColumn('averageIgnoreDayReceptionVolume').label('标后日均').toFixed(2).minWidth(140).end()
    .useColumn('averageResponseTime').label('平均响应').toFixed(2).minWidth(140).end()
    .useColumn('averageIgnoreResponseTime').label('标后均响').toFixed(2).minWidth(140).end()
    .useColumn('averageResponseRate').label('平均回复率').toFixedPercent(2).minWidth(140).end()
    .useColumn('averageIgnoreResponseRate').label('标后回复').toFixed(2).minWidth(140).end()
    .useColumn('averageConversionRate').label('平均问答比').toFixedPercent(2).minWidth(140).end()
    .useColumn('averageIgnoreQARatio').label('标后问答').toFixed(2).minWidth(140).end()
    .useColumn('sumCount').label('数据总行数').toFixed(2).minWidth(140).end()
    .useColumn('ignoreCount').label('打标行数').toFixed(2).minWidth(140).end()
    .useColumn('ignoreProportion').label('打标占比').minWidth(140).end()
    .useColumn('restDays').label('休息天数').minWidth(140).end()
    .upto('DialogTable')
  .usePagination()
    .upto('DialogTable')


export default checkPageDetailDialog

export {
  detailDetailDialog
}
